YES 4.128
H-Termination proof of /home/matraf/haskell/eval_FullyBlown_Fast/List.hs
H-Termination of the given Haskell-Program with start terms could successfully be proven:
↳ HASKELL
↳ LR
mainModule List
| ((elemIndices :: Ratio Int -> [Ratio Int] -> [Int]) :: Ratio Int -> [Ratio Int] -> [Int]) |
module List where
| import qualified Maybe import qualified Prelude
|
| elemIndices :: Eq a => a -> [a] -> [Int]
elemIndices | x | = | findIndices (== x) |
|
| findIndices :: (a -> Bool) -> [a] -> [Int]
findIndices | p xs | = | concatMap (\vv1 ->
case | vv1 of |
| (x,i) | -> | if p x then i : [] else [] |
| _ | -> | [] |
) (zip xs (enumFrom 0)) |
|
module Maybe where
| import qualified List import qualified Prelude
|
Lambda Reductions:
The following Lambda expression
\vv1→
case | vv1 of |
| (x,i) | → if p x then i : [] else [] |
| _ | → [] |
is transformed to
findIndices0 | p vv1 | =
case | vv1 of | | (x,i) | → if p x then i : [] else [] |
| _ | → [] |
|
The following Lambda expression
\ab→(a,b)
is transformed to
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
mainModule List
| ((elemIndices :: Ratio Int -> [Ratio Int] -> [Int]) :: Ratio Int -> [Ratio Int] -> [Int]) |
module List where
| import qualified Maybe import qualified Prelude
|
| elemIndices :: Eq a => a -> [a] -> [Int]
elemIndices | x | = | findIndices (== x) |
|
| findIndices :: (a -> Bool) -> [a] -> [Int]
findIndices | p xs | = | concatMap (findIndices0 p) (zip xs (enumFrom 0)) |
|
|
findIndices0 | p vv1 | = |
case | vv1 of |
| (x,i) | -> | if p x then i : [] else [] |
| _ | -> | [] |
|
|
module Maybe where
| import qualified List import qualified Prelude
|
Case Reductions:
The following Case expression
case | vv1 of |
| (x,i) | → if p x then i : [] else [] |
| _ | → [] |
is transformed to
findIndices00 | p (x,i) | = if p x then i : [] else [] |
findIndices00 | p _ | = [] |
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
mainModule List
| ((elemIndices :: Ratio Int -> [Ratio Int] -> [Int]) :: Ratio Int -> [Ratio Int] -> [Int]) |
module List where
| import qualified Maybe import qualified Prelude
|
| elemIndices :: Eq a => a -> [a] -> [Int]
elemIndices | x | = | findIndices (== x) |
|
| findIndices :: (a -> Bool) -> [a] -> [Int]
findIndices | p xs | = | concatMap (findIndices0 p) (zip xs (enumFrom 0)) |
|
|
findIndices0 | p vv1 | = | findIndices00 p vv1 |
|
|
findIndices00 | p (x,i) | = | if p x then i : [] else [] |
findIndices00 | p _ | = | [] |
|
module Maybe where
| import qualified List import qualified Prelude
|
If Reductions:
The following If expression
if p x then i : [] else []
is transformed to
findIndices000 | i True | = i : [] |
findIndices000 | i False | = [] |
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
mainModule List
| ((elemIndices :: Ratio Int -> [Ratio Int] -> [Int]) :: Ratio Int -> [Ratio Int] -> [Int]) |
module List where
| import qualified Maybe import qualified Prelude
|
| elemIndices :: Eq a => a -> [a] -> [Int]
elemIndices | x | = | findIndices (== x) |
|
| findIndices :: (a -> Bool) -> [a] -> [Int]
findIndices | p xs | = | concatMap (findIndices0 p) (zip xs (enumFrom 0)) |
|
|
findIndices0 | p vv1 | = | findIndices00 p vv1 |
|
|
findIndices00 | p (x,i) | = | findIndices000 i (p x) |
findIndices00 | p _ | = | [] |
|
|
findIndices000 | i True | = | i : [] |
findIndices000 | i False | = | [] |
|
module Maybe where
| import qualified List import qualified Prelude
|
Replaced joker patterns by fresh variables and removed binding patterns.
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
mainModule List
| ((elemIndices :: Ratio Int -> [Ratio Int] -> [Int]) :: Ratio Int -> [Ratio Int] -> [Int]) |
module List where
| import qualified Maybe import qualified Prelude
|
| elemIndices :: Eq a => a -> [a] -> [Int]
elemIndices | x | = | findIndices (== x) |
|
| findIndices :: (a -> Bool) -> [a] -> [Int]
findIndices | p xs | = | concatMap (findIndices0 p) (zip xs (enumFrom 0)) |
|
|
findIndices0 | p vv1 | = | findIndices00 p vv1 |
|
|
findIndices00 | p (x,i) | = | findIndices000 i (p x) |
findIndices00 | p vw | = | [] |
|
|
findIndices000 | i True | = | i : [] |
findIndices000 | i False | = | [] |
|
module Maybe where
| import qualified List import qualified Prelude
|
Cond Reductions:
The following Function with conditions
is transformed to
undefined0 | True | = undefined |
undefined1 | | = undefined0 False |
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
mainModule List
| ((elemIndices :: Ratio Int -> [Ratio Int] -> [Int]) :: Ratio Int -> [Ratio Int] -> [Int]) |
module List where
| import qualified Maybe import qualified Prelude
|
| elemIndices :: Eq a => a -> [a] -> [Int]
elemIndices | x | = | findIndices (== x) |
|
| findIndices :: (a -> Bool) -> [a] -> [Int]
findIndices | p xs | = | concatMap (findIndices0 p) (zip xs (enumFrom 0)) |
|
|
findIndices0 | p vv1 | = | findIndices00 p vv1 |
|
|
findIndices00 | p (x,i) | = | findIndices000 i (p x) |
findIndices00 | p vw | = | [] |
|
|
findIndices000 | i True | = | i : [] |
findIndices000 | i False | = | [] |
|
module Maybe where
| import qualified List import qualified Prelude
|
Num Reduction: All numbers are transformed to thier corresponding representation with Pos, Neg, Succ and Zero.
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
mainModule List
| (elemIndices :: Ratio Int -> [Ratio Int] -> [Int]) |
module List where
| import qualified Maybe import qualified Prelude
|
| elemIndices :: Eq a => a -> [a] -> [Int]
elemIndices | x | = | findIndices (== x) |
|
| findIndices :: (a -> Bool) -> [a] -> [Int]
findIndices | p xs | = | concatMap (findIndices0 p) (zip xs (enumFrom (Pos Zero))) |
|
|
findIndices0 | p vv1 | = | findIndices00 p vv1 |
|
|
findIndices00 | p (x,i) | = | findIndices000 i (p x) |
findIndices00 | p vw | = | [] |
|
|
findIndices000 | i True | = | i : [] |
findIndices000 | i False | = | [] |
|
module Maybe where
| import qualified List import qualified Prelude
|
Haskell To QDPs
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
new_psPs(wy13, Succ(wy31000), Succ(wy41101000), wy20) → new_psPs(wy13, wy31000, wy41101000, wy20)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_psPs(wy13, Succ(wy31000), Succ(wy41101000), wy20) → new_psPs(wy13, wy31000, wy41101000, wy20)
The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3, 4 >= 4
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
new_foldr0(wy31, :%(Pos(Succ(wy4110000)), wy41101), :(wy41110, wy41111), wy13, wy14) → new_foldr0(wy31, wy41110, wy41111, new_primPlusNat(wy14), new_primPlusNat(wy14))
new_psPs1(wy13, Pos(Succ(wy3100)), Pos(Succ(wy4110100)), wy4111, wy14) → new_foldr(Pos(Succ(wy3100)), wy4111, wy14)
new_psPs1(wy13, Pos(Succ(wy3100)), Pos(Zero), wy4111, wy14) → new_foldr(Pos(Succ(wy3100)), wy4111, wy14)
new_psPs1(wy13, Pos(Zero), Neg(Zero), wy4111, wy14) → new_foldr(Pos(Zero), wy4111, wy14)
new_psPs1(wy13, Neg(Succ(wy3100)), Pos(wy411010), wy4111, wy14) → new_foldr(Neg(Succ(wy3100)), wy4111, wy14)
new_foldr0(Neg(Succ(wy3100)), :%(Pos(Zero), Pos(wy411010)), wy4111, wy13, wy14) → new_foldr(Neg(Succ(wy3100)), wy4111, wy14)
new_foldr(wy31, :(wy41110, wy41111), wy14) → new_foldr0(wy31, wy41110, wy41111, new_primPlusNat(wy14), new_primPlusNat(wy14))
new_foldr0(wy31, :%(Neg(Zero), wy41101), wy4111, wy13, wy14) → new_psPs1(wy13, wy31, wy41101, wy4111, wy14)
new_foldr0(Pos(Zero), :%(Pos(Zero), Pos(Succ(wy4110100))), wy4111, wy13, wy14) → new_foldr(Pos(Zero), wy4111, wy14)
new_foldr0(Pos(Zero), :%(Pos(Zero), Pos(Zero)), wy4111, wy13, wy14) → new_foldr(Pos(Zero), wy4111, wy14)
new_foldr0(Neg(Zero), :%(Pos(Zero), Pos(Zero)), wy4111, wy13, wy14) → new_foldr(Neg(Zero), wy4111, wy14)
new_psPs0(wy13, wy31, wy41101, :(wy41110, wy41111), wy14) → new_foldr0(wy31, wy41110, wy41111, new_primPlusNat(wy14), new_primPlusNat(wy14))
new_psPs1(wy13, Neg(Zero), Neg(Zero), wy4111, wy14) → new_foldr(Neg(Zero), wy4111, wy14)
new_psPs1(wy13, Neg(Zero), Neg(Succ(wy4110100)), wy4111, wy14) → new_foldr(Neg(Zero), wy4111, wy14)
new_psPs1(wy13, Neg(Zero), Pos(Zero), wy4111, wy14) → new_foldr(Neg(Zero), wy4111, wy14)
new_psPs1(wy13, Pos(Succ(wy3100)), Neg(wy411010), wy4111, wy14) → new_foldr(Pos(Succ(wy3100)), wy4111, wy14)
new_psPs1(wy13, Pos(Zero), Pos(Zero), wy4111, wy14) → new_foldr(Pos(Zero), wy4111, wy14)
new_psPs1(wy13, Pos(Zero), Pos(Succ(wy4110100)), wy4111, wy14) → new_foldr(Pos(Zero), wy4111, wy14)
new_foldr0(Pos(Succ(wy3100)), :%(Pos(Zero), Neg(wy411010)), wy4111, wy13, wy14) → new_foldr(Pos(Succ(wy3100)), wy4111, wy14)
new_psPs1(wy13, Neg(Zero), Pos(Succ(wy4110100)), wy4111, wy14) → new_foldr(Neg(Zero), wy4111, wy14)
new_foldr0(Pos(Zero), :%(Pos(Zero), Neg(Succ(wy4110100))), wy4111, wy13, wy14) → new_foldr(Pos(Zero), wy4111, wy14)
new_foldr0(Pos(Succ(wy3100)), :%(Pos(Zero), Pos(Zero)), wy4111, wy13, wy14) → new_foldr(Pos(Succ(wy3100)), wy4111, wy14)
new_foldr0(Pos(Zero), :%(Pos(Zero), Neg(Zero)), wy4111, wy13, wy14) → new_foldr(Pos(Zero), wy4111, wy14)
new_foldr0(Pos(Succ(wy3100)), :%(Pos(Zero), Pos(Succ(wy4110100))), wy4111, wy13, wy14) → new_foldr(Pos(Succ(wy3100)), wy4111, wy14)
new_foldr0(Neg(Succ(wy3100)), :%(Pos(Zero), Neg(Succ(wy4110100))), wy4111, wy13, wy14) → new_foldr(Neg(Succ(wy3100)), wy4111, wy14)
new_foldr0(wy31, :%(Neg(Succ(wy4110000)), wy41101), wy4111, wy13, wy14) → new_psPs0(wy13, wy31, wy41101, wy4111, wy14)
new_foldr0(Neg(Succ(wy3100)), :%(Pos(Zero), Neg(Zero)), wy4111, wy13, wy14) → new_foldr(Neg(Succ(wy3100)), wy4111, wy14)
new_psPs1(wy13, Neg(Succ(wy3100)), Neg(Zero), wy4111, wy14) → new_foldr(Neg(Succ(wy3100)), wy4111, wy14)
new_foldr0(Neg(Zero), :%(Pos(Zero), Neg(Succ(wy4110100))), wy4111, wy13, wy14) → new_foldr(Neg(Zero), wy4111, wy14)
new_foldr0(Neg(Zero), :%(Pos(Zero), Neg(Zero)), wy4111, wy13, wy14) → new_foldr(Neg(Zero), wy4111, wy14)
new_foldr0(Neg(Zero), :%(Pos(Zero), Pos(Succ(wy4110100))), wy4111, wy13, wy14) → new_foldr(Neg(Zero), wy4111, wy14)
new_psPs1(wy13, Pos(Zero), Neg(Succ(wy4110100)), wy4111, wy14) → new_foldr(Pos(Zero), wy4111, wy14)
new_psPs1(wy13, Neg(Succ(wy3100)), Neg(Succ(wy4110100)), wy4111, wy14) → new_foldr(Neg(Succ(wy3100)), wy4111, wy14)
The TRS R consists of the following rules:
new_primPlusNat(Zero) → Succ(Zero)
new_primPlusNat0(Succ(wy1700)) → Succ(wy1700)
new_primPlusNat(Succ(wy170)) → Succ(Succ(new_primPlusNat0(wy170)))
new_primPlusNat0(Zero) → Zero
The set Q consists of the following terms:
new_primPlusNat(Succ(x0))
new_primPlusNat(Zero)
new_primPlusNat0(Zero)
new_primPlusNat0(Succ(x0))
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_foldr0(wy31, :%(Pos(Succ(wy4110000)), wy41101), :(wy41110, wy41111), wy13, wy14) → new_foldr0(wy31, wy41110, wy41111, new_primPlusNat(wy14), new_primPlusNat(wy14))
The graph contains the following edges 1 >= 1, 3 > 2, 3 > 3
- new_foldr0(wy31, :%(Neg(Zero), wy41101), wy4111, wy13, wy14) → new_psPs1(wy13, wy31, wy41101, wy4111, wy14)
The graph contains the following edges 4 >= 1, 1 >= 2, 2 > 3, 3 >= 4, 5 >= 5
- new_foldr(wy31, :(wy41110, wy41111), wy14) → new_foldr0(wy31, wy41110, wy41111, new_primPlusNat(wy14), new_primPlusNat(wy14))
The graph contains the following edges 1 >= 1, 2 > 2, 2 > 3
- new_psPs0(wy13, wy31, wy41101, :(wy41110, wy41111), wy14) → new_foldr0(wy31, wy41110, wy41111, new_primPlusNat(wy14), new_primPlusNat(wy14))
The graph contains the following edges 2 >= 1, 4 > 2, 4 > 3
- new_foldr0(wy31, :%(Neg(Succ(wy4110000)), wy41101), wy4111, wy13, wy14) → new_psPs0(wy13, wy31, wy41101, wy4111, wy14)
The graph contains the following edges 4 >= 1, 1 >= 2, 2 > 3, 3 >= 4, 5 >= 5
- new_foldr0(Neg(Succ(wy3100)), :%(Pos(Zero), Pos(wy411010)), wy4111, wy13, wy14) → new_foldr(Neg(Succ(wy3100)), wy4111, wy14)
The graph contains the following edges 1 >= 1, 3 >= 2, 5 >= 3
- new_foldr0(Pos(Zero), :%(Pos(Zero), Pos(Succ(wy4110100))), wy4111, wy13, wy14) → new_foldr(Pos(Zero), wy4111, wy14)
The graph contains the following edges 1 >= 1, 2 > 1, 3 >= 2, 5 >= 3
- new_foldr0(Pos(Zero), :%(Pos(Zero), Pos(Zero)), wy4111, wy13, wy14) → new_foldr(Pos(Zero), wy4111, wy14)
The graph contains the following edges 1 >= 1, 2 > 1, 3 >= 2, 5 >= 3
- new_foldr0(Neg(Zero), :%(Pos(Zero), Pos(Zero)), wy4111, wy13, wy14) → new_foldr(Neg(Zero), wy4111, wy14)
The graph contains the following edges 1 >= 1, 3 >= 2, 5 >= 3
- new_foldr0(Pos(Succ(wy3100)), :%(Pos(Zero), Neg(wy411010)), wy4111, wy13, wy14) → new_foldr(Pos(Succ(wy3100)), wy4111, wy14)
The graph contains the following edges 1 >= 1, 3 >= 2, 5 >= 3
- new_foldr0(Pos(Zero), :%(Pos(Zero), Neg(Succ(wy4110100))), wy4111, wy13, wy14) → new_foldr(Pos(Zero), wy4111, wy14)
The graph contains the following edges 1 >= 1, 2 > 1, 3 >= 2, 5 >= 3
- new_foldr0(Pos(Succ(wy3100)), :%(Pos(Zero), Pos(Zero)), wy4111, wy13, wy14) → new_foldr(Pos(Succ(wy3100)), wy4111, wy14)
The graph contains the following edges 1 >= 1, 3 >= 2, 5 >= 3
- new_foldr0(Pos(Zero), :%(Pos(Zero), Neg(Zero)), wy4111, wy13, wy14) → new_foldr(Pos(Zero), wy4111, wy14)
The graph contains the following edges 1 >= 1, 2 > 1, 3 >= 2, 5 >= 3
- new_foldr0(Pos(Succ(wy3100)), :%(Pos(Zero), Pos(Succ(wy4110100))), wy4111, wy13, wy14) → new_foldr(Pos(Succ(wy3100)), wy4111, wy14)
The graph contains the following edges 1 >= 1, 3 >= 2, 5 >= 3
- new_foldr0(Neg(Succ(wy3100)), :%(Pos(Zero), Neg(Succ(wy4110100))), wy4111, wy13, wy14) → new_foldr(Neg(Succ(wy3100)), wy4111, wy14)
The graph contains the following edges 1 >= 1, 3 >= 2, 5 >= 3
- new_foldr0(Neg(Succ(wy3100)), :%(Pos(Zero), Neg(Zero)), wy4111, wy13, wy14) → new_foldr(Neg(Succ(wy3100)), wy4111, wy14)
The graph contains the following edges 1 >= 1, 3 >= 2, 5 >= 3
- new_foldr0(Neg(Zero), :%(Pos(Zero), Neg(Succ(wy4110100))), wy4111, wy13, wy14) → new_foldr(Neg(Zero), wy4111, wy14)
The graph contains the following edges 1 >= 1, 3 >= 2, 5 >= 3
- new_foldr0(Neg(Zero), :%(Pos(Zero), Pos(Succ(wy4110100))), wy4111, wy13, wy14) → new_foldr(Neg(Zero), wy4111, wy14)
The graph contains the following edges 1 >= 1, 3 >= 2, 5 >= 3
- new_foldr0(Neg(Zero), :%(Pos(Zero), Neg(Zero)), wy4111, wy13, wy14) → new_foldr(Neg(Zero), wy4111, wy14)
The graph contains the following edges 1 >= 1, 2 > 1, 3 >= 2, 5 >= 3
- new_psPs1(wy13, Pos(Succ(wy3100)), Pos(Succ(wy4110100)), wy4111, wy14) → new_foldr(Pos(Succ(wy3100)), wy4111, wy14)
The graph contains the following edges 2 >= 1, 4 >= 2, 5 >= 3
- new_psPs1(wy13, Pos(Zero), Neg(Zero), wy4111, wy14) → new_foldr(Pos(Zero), wy4111, wy14)
The graph contains the following edges 2 >= 1, 4 >= 2, 5 >= 3
- new_psPs1(wy13, Pos(Succ(wy3100)), Pos(Zero), wy4111, wy14) → new_foldr(Pos(Succ(wy3100)), wy4111, wy14)
The graph contains the following edges 2 >= 1, 4 >= 2, 5 >= 3
- new_psPs1(wy13, Neg(Succ(wy3100)), Pos(wy411010), wy4111, wy14) → new_foldr(Neg(Succ(wy3100)), wy4111, wy14)
The graph contains the following edges 2 >= 1, 4 >= 2, 5 >= 3
- new_psPs1(wy13, Neg(Zero), Neg(Zero), wy4111, wy14) → new_foldr(Neg(Zero), wy4111, wy14)
The graph contains the following edges 2 >= 1, 3 >= 1, 4 >= 2, 5 >= 3
- new_psPs1(wy13, Neg(Zero), Neg(Succ(wy4110100)), wy4111, wy14) → new_foldr(Neg(Zero), wy4111, wy14)
The graph contains the following edges 2 >= 1, 4 >= 2, 5 >= 3
- new_psPs1(wy13, Neg(Zero), Pos(Zero), wy4111, wy14) → new_foldr(Neg(Zero), wy4111, wy14)
The graph contains the following edges 2 >= 1, 4 >= 2, 5 >= 3
- new_psPs1(wy13, Pos(Succ(wy3100)), Neg(wy411010), wy4111, wy14) → new_foldr(Pos(Succ(wy3100)), wy4111, wy14)
The graph contains the following edges 2 >= 1, 4 >= 2, 5 >= 3
- new_psPs1(wy13, Pos(Zero), Pos(Zero), wy4111, wy14) → new_foldr(Pos(Zero), wy4111, wy14)
The graph contains the following edges 2 >= 1, 3 >= 1, 4 >= 2, 5 >= 3
- new_psPs1(wy13, Pos(Zero), Pos(Succ(wy4110100)), wy4111, wy14) → new_foldr(Pos(Zero), wy4111, wy14)
The graph contains the following edges 2 >= 1, 4 >= 2, 5 >= 3
- new_psPs1(wy13, Neg(Zero), Pos(Succ(wy4110100)), wy4111, wy14) → new_foldr(Neg(Zero), wy4111, wy14)
The graph contains the following edges 2 >= 1, 4 >= 2, 5 >= 3
- new_psPs1(wy13, Neg(Succ(wy3100)), Neg(Zero), wy4111, wy14) → new_foldr(Neg(Succ(wy3100)), wy4111, wy14)
The graph contains the following edges 2 >= 1, 4 >= 2, 5 >= 3
- new_psPs1(wy13, Pos(Zero), Neg(Succ(wy4110100)), wy4111, wy14) → new_foldr(Pos(Zero), wy4111, wy14)
The graph contains the following edges 2 >= 1, 4 >= 2, 5 >= 3
- new_psPs1(wy13, Neg(Succ(wy3100)), Neg(Succ(wy4110100)), wy4111, wy14) → new_foldr(Neg(Succ(wy3100)), wy4111, wy14)
The graph contains the following edges 2 >= 1, 4 >= 2, 5 >= 3
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
new_psPs2(wy17, wy31, wy41101, :(wy41110, wy41111), wy18) → new_foldr2(wy31, wy41110, new_primPlusNat(wy18), wy41111, new_primPlusNat(wy18))
new_foldr2(Neg(Succ(wy3100)), :%(Pos(Zero), Pos(wy411010)), wy17, wy4111, wy18) → new_foldr1(Neg(Succ(wy3100)), wy4111, wy18)
new_psPs3(wy17, Pos(Zero), Neg(Succ(wy4110100)), wy4111, wy18) → new_foldr1(Pos(Zero), wy4111, wy18)
new_foldr2(Pos(Succ(wy3100)), :%(Pos(Zero), Pos(Succ(wy4110100))), wy17, wy4111, wy18) → new_foldr1(Pos(Succ(wy3100)), wy4111, wy18)
new_foldr1(wy31, :(wy41110, wy41111), wy18) → new_foldr2(wy31, wy41110, new_primPlusNat(wy18), wy41111, new_primPlusNat(wy18))
new_foldr2(Pos(Zero), :%(Pos(Zero), Neg(Succ(wy4110100))), wy17, wy4111, wy18) → new_foldr1(Pos(Zero), wy4111, wy18)
new_foldr2(Neg(Zero), :%(Pos(Zero), Neg(Succ(wy4110100))), wy17, wy4111, wy18) → new_foldr1(Neg(Zero), wy4111, wy18)
new_foldr2(Neg(Zero), :%(Pos(Zero), Neg(Zero)), wy17, wy4111, wy18) → new_foldr1(Neg(Zero), wy4111, wy18)
new_psPs3(wy17, Pos(Zero), Pos(Succ(wy4110100)), wy4111, wy18) → new_foldr1(Pos(Zero), wy4111, wy18)
new_foldr2(wy31, :%(Neg(Zero), wy41101), wy17, wy4111, wy18) → new_psPs3(wy17, wy31, wy41101, wy4111, wy18)
new_foldr2(wy31, :%(Neg(Succ(wy4110000)), wy41101), wy17, wy4111, wy18) → new_psPs2(wy17, wy31, wy41101, wy4111, wy18)
new_foldr2(Neg(Zero), :%(Pos(Zero), Pos(Succ(wy4110100))), wy17, wy4111, wy18) → new_foldr1(Neg(Zero), wy4111, wy18)
new_psPs3(wy17, Neg(Succ(wy3100)), Pos(wy411010), wy4111, wy18) → new_foldr1(Neg(Succ(wy3100)), wy4111, wy18)
new_foldr2(Pos(Zero), :%(Pos(Zero), Pos(Succ(wy4110100))), wy17, wy4111, wy18) → new_foldr1(Pos(Zero), wy4111, wy18)
new_foldr2(Neg(Succ(wy3100)), :%(Pos(Zero), Neg(Zero)), wy17, wy4111, wy18) → new_foldr1(Neg(Succ(wy3100)), wy4111, wy18)
new_foldr2(Neg(Succ(wy3100)), :%(Pos(Zero), Neg(Succ(wy4110100))), wy17, wy4111, wy18) → new_foldr1(Neg(Succ(wy3100)), wy4111, wy18)
new_psPs3(wy17, Pos(Zero), Pos(Zero), wy4111, wy18) → new_foldr1(Pos(Zero), wy4111, wy18)
new_foldr2(Pos(Zero), :%(Pos(Zero), Pos(Zero)), wy17, wy4111, wy18) → new_foldr1(Pos(Zero), wy4111, wy18)
new_foldr2(Pos(Succ(wy3100)), :%(Pos(Zero), Pos(Zero)), wy17, wy4111, wy18) → new_foldr1(Pos(Succ(wy3100)), wy4111, wy18)
new_psPs3(wy17, Pos(Succ(wy3100)), Pos(Succ(wy4110100)), wy4111, wy18) → new_foldr1(Pos(Succ(wy3100)), wy4111, wy18)
new_psPs3(wy17, Neg(Succ(wy3100)), Neg(Succ(wy4110100)), wy4111, wy18) → new_foldr1(Neg(Succ(wy3100)), wy4111, wy18)
new_foldr2(Neg(Zero), :%(Pos(Zero), Pos(Zero)), wy17, wy4111, wy18) → new_foldr1(Neg(Zero), wy4111, wy18)
new_psPs3(wy17, Neg(Zero), Pos(Zero), wy4111, wy18) → new_foldr1(Neg(Zero), wy4111, wy18)
new_foldr2(wy31, :%(Pos(Succ(wy4110000)), wy41101), wy17, :(wy41110, wy41111), wy18) → new_foldr2(wy31, wy41110, new_primPlusNat(wy18), wy41111, new_primPlusNat(wy18))
new_psPs3(wy17, Neg(Succ(wy3100)), Neg(Zero), wy4111, wy18) → new_foldr1(Neg(Succ(wy3100)), wy4111, wy18)
new_psPs3(wy17, Neg(Zero), Neg(Zero), wy4111, wy18) → new_foldr1(Neg(Zero), wy4111, wy18)
new_psPs3(wy17, Pos(Succ(wy3100)), Pos(Zero), wy4111, wy18) → new_foldr1(Pos(Succ(wy3100)), wy4111, wy18)
new_psPs3(wy17, Pos(Succ(wy3100)), Neg(wy411010), wy4111, wy18) → new_foldr1(Pos(Succ(wy3100)), wy4111, wy18)
new_psPs3(wy17, Pos(Zero), Neg(Zero), wy4111, wy18) → new_foldr1(Pos(Zero), wy4111, wy18)
new_psPs3(wy17, Neg(Zero), Pos(Succ(wy4110100)), wy4111, wy18) → new_foldr1(Neg(Zero), wy4111, wy18)
new_foldr2(Pos(Zero), :%(Pos(Zero), Neg(Zero)), wy17, wy4111, wy18) → new_foldr1(Pos(Zero), wy4111, wy18)
new_foldr2(Pos(Succ(wy3100)), :%(Pos(Zero), Neg(wy411010)), wy17, wy4111, wy18) → new_foldr1(Pos(Succ(wy3100)), wy4111, wy18)
new_psPs3(wy17, Neg(Zero), Neg(Succ(wy4110100)), wy4111, wy18) → new_foldr1(Neg(Zero), wy4111, wy18)
The TRS R consists of the following rules:
new_primPlusNat(Zero) → Succ(Zero)
new_primPlusNat0(Succ(wy1700)) → Succ(wy1700)
new_primPlusNat(Succ(wy170)) → Succ(Succ(new_primPlusNat0(wy170)))
new_primPlusNat0(Zero) → Zero
The set Q consists of the following terms:
new_primPlusNat(Succ(x0))
new_primPlusNat(Zero)
new_primPlusNat0(Zero)
new_primPlusNat0(Succ(x0))
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_foldr2(wy31, :%(Neg(Succ(wy4110000)), wy41101), wy17, wy4111, wy18) → new_psPs2(wy17, wy31, wy41101, wy4111, wy18)
The graph contains the following edges 3 >= 1, 1 >= 2, 2 > 3, 4 >= 4, 5 >= 5
- new_foldr2(wy31, :%(Pos(Succ(wy4110000)), wy41101), wy17, :(wy41110, wy41111), wy18) → new_foldr2(wy31, wy41110, new_primPlusNat(wy18), wy41111, new_primPlusNat(wy18))
The graph contains the following edges 1 >= 1, 4 > 2, 4 > 4
- new_foldr1(wy31, :(wy41110, wy41111), wy18) → new_foldr2(wy31, wy41110, new_primPlusNat(wy18), wy41111, new_primPlusNat(wy18))
The graph contains the following edges 1 >= 1, 2 > 2, 2 > 4
- new_psPs2(wy17, wy31, wy41101, :(wy41110, wy41111), wy18) → new_foldr2(wy31, wy41110, new_primPlusNat(wy18), wy41111, new_primPlusNat(wy18))
The graph contains the following edges 2 >= 1, 4 > 2, 4 > 4
- new_foldr2(wy31, :%(Neg(Zero), wy41101), wy17, wy4111, wy18) → new_psPs3(wy17, wy31, wy41101, wy4111, wy18)
The graph contains the following edges 3 >= 1, 1 >= 2, 2 > 3, 4 >= 4, 5 >= 5
- new_foldr2(Neg(Succ(wy3100)), :%(Pos(Zero), Pos(wy411010)), wy17, wy4111, wy18) → new_foldr1(Neg(Succ(wy3100)), wy4111, wy18)
The graph contains the following edges 1 >= 1, 4 >= 2, 5 >= 3
- new_foldr2(Pos(Succ(wy3100)), :%(Pos(Zero), Pos(Succ(wy4110100))), wy17, wy4111, wy18) → new_foldr1(Pos(Succ(wy3100)), wy4111, wy18)
The graph contains the following edges 1 >= 1, 4 >= 2, 5 >= 3
- new_foldr2(Pos(Zero), :%(Pos(Zero), Neg(Succ(wy4110100))), wy17, wy4111, wy18) → new_foldr1(Pos(Zero), wy4111, wy18)
The graph contains the following edges 1 >= 1, 2 > 1, 4 >= 2, 5 >= 3
- new_foldr2(Neg(Zero), :%(Pos(Zero), Neg(Succ(wy4110100))), wy17, wy4111, wy18) → new_foldr1(Neg(Zero), wy4111, wy18)
The graph contains the following edges 1 >= 1, 4 >= 2, 5 >= 3
- new_foldr2(Neg(Zero), :%(Pos(Zero), Neg(Zero)), wy17, wy4111, wy18) → new_foldr1(Neg(Zero), wy4111, wy18)
The graph contains the following edges 1 >= 1, 2 > 1, 4 >= 2, 5 >= 3
- new_foldr2(Neg(Zero), :%(Pos(Zero), Pos(Succ(wy4110100))), wy17, wy4111, wy18) → new_foldr1(Neg(Zero), wy4111, wy18)
The graph contains the following edges 1 >= 1, 4 >= 2, 5 >= 3
- new_foldr2(Pos(Zero), :%(Pos(Zero), Pos(Succ(wy4110100))), wy17, wy4111, wy18) → new_foldr1(Pos(Zero), wy4111, wy18)
The graph contains the following edges 1 >= 1, 2 > 1, 4 >= 2, 5 >= 3
- new_foldr2(Neg(Succ(wy3100)), :%(Pos(Zero), Neg(Zero)), wy17, wy4111, wy18) → new_foldr1(Neg(Succ(wy3100)), wy4111, wy18)
The graph contains the following edges 1 >= 1, 4 >= 2, 5 >= 3
- new_foldr2(Neg(Succ(wy3100)), :%(Pos(Zero), Neg(Succ(wy4110100))), wy17, wy4111, wy18) → new_foldr1(Neg(Succ(wy3100)), wy4111, wy18)
The graph contains the following edges 1 >= 1, 4 >= 2, 5 >= 3
- new_foldr2(Pos(Zero), :%(Pos(Zero), Pos(Zero)), wy17, wy4111, wy18) → new_foldr1(Pos(Zero), wy4111, wy18)
The graph contains the following edges 1 >= 1, 2 > 1, 4 >= 2, 5 >= 3
- new_foldr2(Pos(Succ(wy3100)), :%(Pos(Zero), Pos(Zero)), wy17, wy4111, wy18) → new_foldr1(Pos(Succ(wy3100)), wy4111, wy18)
The graph contains the following edges 1 >= 1, 4 >= 2, 5 >= 3
- new_foldr2(Neg(Zero), :%(Pos(Zero), Pos(Zero)), wy17, wy4111, wy18) → new_foldr1(Neg(Zero), wy4111, wy18)
The graph contains the following edges 1 >= 1, 4 >= 2, 5 >= 3
- new_foldr2(Pos(Zero), :%(Pos(Zero), Neg(Zero)), wy17, wy4111, wy18) → new_foldr1(Pos(Zero), wy4111, wy18)
The graph contains the following edges 1 >= 1, 2 > 1, 4 >= 2, 5 >= 3
- new_foldr2(Pos(Succ(wy3100)), :%(Pos(Zero), Neg(wy411010)), wy17, wy4111, wy18) → new_foldr1(Pos(Succ(wy3100)), wy4111, wy18)
The graph contains the following edges 1 >= 1, 4 >= 2, 5 >= 3
- new_psPs3(wy17, Pos(Zero), Neg(Succ(wy4110100)), wy4111, wy18) → new_foldr1(Pos(Zero), wy4111, wy18)
The graph contains the following edges 2 >= 1, 4 >= 2, 5 >= 3
- new_psPs3(wy17, Pos(Zero), Pos(Succ(wy4110100)), wy4111, wy18) → new_foldr1(Pos(Zero), wy4111, wy18)
The graph contains the following edges 2 >= 1, 4 >= 2, 5 >= 3
- new_psPs3(wy17, Neg(Succ(wy3100)), Pos(wy411010), wy4111, wy18) → new_foldr1(Neg(Succ(wy3100)), wy4111, wy18)
The graph contains the following edges 2 >= 1, 4 >= 2, 5 >= 3
- new_psPs3(wy17, Pos(Zero), Pos(Zero), wy4111, wy18) → new_foldr1(Pos(Zero), wy4111, wy18)
The graph contains the following edges 2 >= 1, 3 >= 1, 4 >= 2, 5 >= 3
- new_psPs3(wy17, Pos(Succ(wy3100)), Pos(Succ(wy4110100)), wy4111, wy18) → new_foldr1(Pos(Succ(wy3100)), wy4111, wy18)
The graph contains the following edges 2 >= 1, 4 >= 2, 5 >= 3
- new_psPs3(wy17, Neg(Succ(wy3100)), Neg(Succ(wy4110100)), wy4111, wy18) → new_foldr1(Neg(Succ(wy3100)), wy4111, wy18)
The graph contains the following edges 2 >= 1, 4 >= 2, 5 >= 3
- new_psPs3(wy17, Neg(Zero), Pos(Zero), wy4111, wy18) → new_foldr1(Neg(Zero), wy4111, wy18)
The graph contains the following edges 2 >= 1, 4 >= 2, 5 >= 3
- new_psPs3(wy17, Neg(Zero), Neg(Zero), wy4111, wy18) → new_foldr1(Neg(Zero), wy4111, wy18)
The graph contains the following edges 2 >= 1, 3 >= 1, 4 >= 2, 5 >= 3
- new_psPs3(wy17, Neg(Succ(wy3100)), Neg(Zero), wy4111, wy18) → new_foldr1(Neg(Succ(wy3100)), wy4111, wy18)
The graph contains the following edges 2 >= 1, 4 >= 2, 5 >= 3
- new_psPs3(wy17, Pos(Succ(wy3100)), Pos(Zero), wy4111, wy18) → new_foldr1(Pos(Succ(wy3100)), wy4111, wy18)
The graph contains the following edges 2 >= 1, 4 >= 2, 5 >= 3
- new_psPs3(wy17, Pos(Zero), Neg(Zero), wy4111, wy18) → new_foldr1(Pos(Zero), wy4111, wy18)
The graph contains the following edges 2 >= 1, 4 >= 2, 5 >= 3
- new_psPs3(wy17, Pos(Succ(wy3100)), Neg(wy411010), wy4111, wy18) → new_foldr1(Pos(Succ(wy3100)), wy4111, wy18)
The graph contains the following edges 2 >= 1, 4 >= 2, 5 >= 3
- new_psPs3(wy17, Neg(Zero), Pos(Succ(wy4110100)), wy4111, wy18) → new_foldr1(Neg(Zero), wy4111, wy18)
The graph contains the following edges 2 >= 1, 4 >= 2, 5 >= 3
- new_psPs3(wy17, Neg(Zero), Neg(Succ(wy4110100)), wy4111, wy18) → new_foldr1(Neg(Zero), wy4111, wy18)
The graph contains the following edges 2 >= 1, 4 >= 2, 5 >= 3
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
new_psPs4(wy11, Succ(wy300000), Succ(wy411000000), wy31, wy41101, wy19) → new_psPs4(wy11, wy300000, wy411000000, wy31, wy41101, wy19)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_psPs4(wy11, Succ(wy300000), Succ(wy411000000), wy31, wy41101, wy19) → new_psPs4(wy11, wy300000, wy411000000, wy31, wy41101, wy19)
The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3, 4 >= 4, 5 >= 5, 6 >= 6
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
new_foldr3(wy3000, wy31, :%(Neg(Zero), wy41101), wy11, wy4111, wy12) → new_psPs5(wy11, wy31, wy41101, wy3000, wy4111, wy12)
new_psPs5(wy11, wy31, wy41101, wy3000, :(wy41110, wy41111), wy12) → new_foldr3(wy3000, wy31, wy41110, new_primPlusNat(wy12), wy41111, new_primPlusNat(wy12))
new_foldr3(wy3000, wy31, :%(Pos(wy411000), wy41101), wy11, :(wy41110, wy41111), wy12) → new_foldr3(wy3000, wy31, wy41110, new_primPlusNat(wy12), wy41111, new_primPlusNat(wy12))
new_foldr4(wy3000, wy31, :(wy41110, wy41111), wy12) → new_foldr3(wy3000, wy31, wy41110, new_primPlusNat(wy12), wy41111, new_primPlusNat(wy12))
new_foldr3(wy3000, wy31, :%(Neg(Succ(wy4110000)), wy41101), wy11, wy4111, wy12) → new_foldr4(wy3000, wy31, wy4111, wy12)
The TRS R consists of the following rules:
new_primPlusNat(Zero) → Succ(Zero)
new_primPlusNat0(Succ(wy1700)) → Succ(wy1700)
new_primPlusNat(Succ(wy170)) → Succ(Succ(new_primPlusNat0(wy170)))
new_primPlusNat0(Zero) → Zero
The set Q consists of the following terms:
new_primPlusNat(Succ(x0))
new_primPlusNat(Zero)
new_primPlusNat0(Zero)
new_primPlusNat0(Succ(x0))
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_psPs5(wy11, wy31, wy41101, wy3000, :(wy41110, wy41111), wy12) → new_foldr3(wy3000, wy31, wy41110, new_primPlusNat(wy12), wy41111, new_primPlusNat(wy12))
The graph contains the following edges 4 >= 1, 2 >= 2, 5 > 3, 5 > 5
- new_foldr3(wy3000, wy31, :%(Pos(wy411000), wy41101), wy11, :(wy41110, wy41111), wy12) → new_foldr3(wy3000, wy31, wy41110, new_primPlusNat(wy12), wy41111, new_primPlusNat(wy12))
The graph contains the following edges 1 >= 1, 2 >= 2, 5 > 3, 5 > 5
- new_foldr4(wy3000, wy31, :(wy41110, wy41111), wy12) → new_foldr3(wy3000, wy31, wy41110, new_primPlusNat(wy12), wy41111, new_primPlusNat(wy12))
The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 3 > 5
- new_foldr3(wy3000, wy31, :%(Neg(Zero), wy41101), wy11, wy4111, wy12) → new_psPs5(wy11, wy31, wy41101, wy3000, wy4111, wy12)
The graph contains the following edges 4 >= 1, 2 >= 2, 3 > 3, 1 >= 4, 5 >= 5, 6 >= 6
- new_foldr3(wy3000, wy31, :%(Neg(Succ(wy4110000)), wy41101), wy11, wy4111, wy12) → new_foldr4(wy3000, wy31, wy4111, wy12)
The graph contains the following edges 1 >= 1, 2 >= 2, 5 >= 3, 6 >= 4
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
new_foldr5(wy3000, wy31, :(wy41110, wy41111), wy16) → new_psPs6(wy3000, wy31, wy41110, new_primPlusNat(wy16), wy41111, new_primPlusNat(wy16))
new_psPs7(wy15, wy31, wy41101, wy3000, :(wy41110, wy41111), wy16) → new_psPs6(wy3000, wy31, wy41110, new_primPlusNat(wy16), wy41111, new_primPlusNat(wy16))
new_psPs6(wy3000, wy31, :%(Pos(Succ(wy4110000)), wy41101), wy15, wy4111, wy16) → new_foldr5(wy3000, wy31, wy4111, wy16)
new_psPs6(wy3000, wy31, :%(Neg(wy411000), wy41101), wy15, :(wy41110, wy41111), wy16) → new_psPs6(wy3000, wy31, wy41110, new_primPlusNat(wy16), wy41111, new_primPlusNat(wy16))
new_psPs6(wy3000, wy31, :%(Pos(Zero), wy41101), wy15, wy4111, wy16) → new_psPs7(wy15, wy31, wy41101, wy3000, wy4111, wy16)
The TRS R consists of the following rules:
new_primPlusNat(Zero) → Succ(Zero)
new_primPlusNat0(Succ(wy1700)) → Succ(wy1700)
new_primPlusNat(Succ(wy170)) → Succ(Succ(new_primPlusNat0(wy170)))
new_primPlusNat0(Zero) → Zero
The set Q consists of the following terms:
new_primPlusNat(Succ(x0))
new_primPlusNat(Zero)
new_primPlusNat0(Zero)
new_primPlusNat0(Succ(x0))
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_psPs6(wy3000, wy31, :%(Pos(Succ(wy4110000)), wy41101), wy15, wy4111, wy16) → new_foldr5(wy3000, wy31, wy4111, wy16)
The graph contains the following edges 1 >= 1, 2 >= 2, 5 >= 3, 6 >= 4
- new_psPs6(wy3000, wy31, :%(Pos(Zero), wy41101), wy15, wy4111, wy16) → new_psPs7(wy15, wy31, wy41101, wy3000, wy4111, wy16)
The graph contains the following edges 4 >= 1, 2 >= 2, 3 > 3, 1 >= 4, 5 >= 5, 6 >= 6
- new_psPs6(wy3000, wy31, :%(Neg(wy411000), wy41101), wy15, :(wy41110, wy41111), wy16) → new_psPs6(wy3000, wy31, wy41110, new_primPlusNat(wy16), wy41111, new_primPlusNat(wy16))
The graph contains the following edges 1 >= 1, 2 >= 2, 5 > 3, 5 > 5
- new_foldr5(wy3000, wy31, :(wy41110, wy41111), wy16) → new_psPs6(wy3000, wy31, wy41110, new_primPlusNat(wy16), wy41111, new_primPlusNat(wy16))
The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 3 > 5
- new_psPs7(wy15, wy31, wy41101, wy3000, :(wy41110, wy41111), wy16) → new_psPs6(wy3000, wy31, wy41110, new_primPlusNat(wy16), wy41111, new_primPlusNat(wy16))
The graph contains the following edges 4 >= 1, 2 >= 2, 5 > 3, 5 > 5
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
new_psPs8(Succ(wy31000), Succ(wy401000), wy6) → new_psPs8(wy31000, wy401000, wy6)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_psPs8(Succ(wy31000), Succ(wy401000), wy6) → new_psPs8(wy31000, wy401000, wy6)
The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3
↳ HASKELL
↳ LR
↳ HASKELL
↳ CR
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
Q DP problem:
The TRS P consists of the following rules:
new_psPs9(Succ(wy300000), Succ(wy4000000), wy31, wy401, wy5) → new_psPs9(wy300000, wy4000000, wy31, wy401, wy5)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_psPs9(Succ(wy300000), Succ(wy4000000), wy31, wy401, wy5) → new_psPs9(wy300000, wy4000000, wy31, wy401, wy5)
The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3, 4 >= 4, 5 >= 5